package com.example.lasttrain.common;

import java.util.Calendar;
import android.util.Log;

public class LeftTimeCalculate {
	// メンバ変数
	private Calendar calendar;
    private Calendar calendar2;

    /***
     *  TODO あと何分を算出してテキスト形式で返却
     *  TimeData trainTime 終電時刻
     *  return leftTime 残り時間
     */
    public String calAlarm(TimeData trainTime) {
         Log.d("LeftTimeCalculate", "calAlarm()");
        
         // 現在の年月日をcalendarに設定 
         calendar = Calendar.getInstance();
         calendar.setTimeInMillis(System.currentTimeMillis());
         
         // 終電時刻を今日の日付でcalendar2にセット
         calendar2 = Calendar.getInstance();
         calendar2.setTimeInMillis(System.currentTimeMillis());
         calendar2.set(Calendar.HOUR_OF_DAY, trainTime.getHour());
         calendar2.set(Calendar.MINUTE, trainTime.getMinute());
         calendar2.set(Calendar.SECOND, 0);
         calendar2.set(Calendar.MILLISECOND, 0);
         
         // 表示時には1分減った状態で表示されてしまうので、追加しておく（201305対応）
         calendar2.add(Calendar.MINUTE, 1);
         
         // 差分時間を算出してString型でセット
         int hour = 0;
         int minute = 0;
         // 今日の終電を過ぎていたら翌日の終電時刻と比較するように1日追加する。
         int diff = calendar.compareTo(calendar2);
         if (diff > 0){
         	// 現在時刻は終電時刻より進んでいるので翌日をセット
         	calendar2.add(Calendar.DAY_OF_MONTH, 1);
           }else{
         	// 現在時刻と終電時刻は同じもしくは終電時刻の方が未来なので、補正しない
           }
         
         
         // 差分時間をミリ秒で算出
         long difference = calendar2.getTime().getTime() - calendar.getTime().getTime();
         // ミリ秒を分に変換
         long leftTimelong = difference/1000/60;
         // 分を○時○分という形に変換
         if(leftTimelong >= 60){
        	hour = Math.round(leftTimelong/60);
        	minute = Math.round(leftTimelong%60);
         }else{
            minute = Math.round(leftTimelong);
         }
                  
         // 差分時間をString型に変換してセット
         String leftTimeString = Integer.toString(hour) + "時間 " + Integer.toString(minute) + "分";
         
         return leftTimeString;

    }
	
	
}
